home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 85 / CD Actual 85 Febrero 2004.iso / Experto / Apache / apache_2.0.48-win32-x86-no_ssl.msi / Data.Cab / F252826_worker.xml.de < prev    next >
Encoding:
Extensible Markup Language  |  2003-04-24  |  6.8 KB  |  141 lines

  1. <?xml version="1.0"?>
  2. <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
  3. <?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
  4. <!-- English revision: 1.8.2.4 -->
  5.  
  6. <modulesynopsis metafile="worker.xml.meta">
  7. <name>worker</name>
  8. <description>Multi-Processing-Modul, das einen Hybrid-Webserver mit
  9.   Multi-Thread und Multi-Prozess-Unterstützung implementiert</description>
  10. <status>MPM</status>
  11. <sourcefile>worker.c</sourcefile>
  12. <identifier>mpm_worker_module</identifier>
  13.  
  14. <summary>
  15.     <p>Dieses Multi-Processing-Modul (MPM) implementiert einen Hybrid-Server
  16.     mit Multi-Thread und Multi-Prozess-Unterstützung. Durch die Verwendung
  17.     von Threads für die Bedienung von Anfragen ist er in der Lage,
  18.     eine große Anzahl von Anfragen mit weniger Systemressourcen als
  19.     ein Prozess-basierter Server zu bedienen. Er behält jedoch viel von
  20.     der Stabilität eines Prozess-basierten Servers bei, indem er
  21.     mehrere Prozesse verfügbar hält, jeden mit etlichen Threads.</p>
  22.  
  23.     <p>Die wichtigsten Direktiven zur Steuerung des MPMs sind <directive
  24.     module="mpm_common">ThreadsPerChild</directive>, welche die Anzahl
  25.     der Threads beeinflusst, die von jedem Kindprozess verwendet werden, und
  26.     <directive module="mpm_common">MaxClients</directive>, welche die
  27.     maximale Gesamtzahl an Threads regelt, die gestartet werden
  28.     können.</p>
  29. </summary>
  30. <seealso><a href="../bind.html">Bestimmen der vom Apache verwendeten Adressen
  31.   und Ports</a></seealso>
  32.  
  33. <section id="how-it-works"><title>Arbeitsweise</title>
  34.     <p>Jeder Prozess besitzt eine feste Anzahl von Threads. Um die Last
  35.     zu bewältigen, passt sich der Server an, indem er die
  36.     Anzahl der Prozesse erhöht oder verringert.</p>
  37.  
  38.     <p>Ein einzelner Steuerprozess ist für den Start der
  39.     Kindprozesse verantwortlich. Jeder Kindprozess erstellt eine
  40.     feste Anzahl von Threads, wie durch die <directive
  41.     module="mpm_common">ThreadsPerChild</directive>-Direktive
  42.     angegeben. Der einzelne Thread lauscht dann auf Verbindungen und
  43.     bedient sie, sobald sie eintreffen.</p>
  44.  
  45.     <p>Der Apache versucht immer, einen Vorrat von <dfn>freien</dfn> oder
  46.     unbeschäftigten Threads zu verwalten, die zur Bedienung
  47.     hereinkommender Anfragen bereit stehen. Auf diese Weise brauchen
  48.     Clients nicht auf die Erstellung eines neuen Threads oder Prozesses
  49.     zu warten, bevor ihre Anfrage bedient werden kann. Die Anzahl der
  50.     Prozesse, die anfangs gestartet wird, wird mit der Direktive
  51.     <directive module="mpm_common">StartServers</directive> festgelegt.
  52.     Dann, während des Betriebes, berechnet der Apache die Gesamtzahl
  53.     der unbeschäftigten Threads und forkt oder beendet Prozesse, um diese
  54.     Anzahl innerhalb der durch <directive
  55.     module="mpm_common">MinSpareThreads</directive> und <directive
  56.     module="mpm_common">MaxSpareThreads</directive> angegebenen Grenzen
  57.     zu halten. Da dieser Prozess sehr selbstregulierend ist, ist es nur selten
  58.     notwendig, die Voreinstellung dieser Direktiven zu ändern. Die
  59.     maximale Anzahl Clients, die gleichzeitig bedient werden kann (d.h.
  60.     die maximale Gesamtzahl der Threads in allen Prozessen), wird mit der
  61.     Direktive <directive module="mpm_common">MaxClients</directive>
  62.     festgelegt, während die maximale Anzahl Prozesse, die gestartet
  63.     werden kann, von der Direktive <directive
  64.     module="mpm_common">ServerLimit</directive> bestimmt wird. <directive
  65.     module="mpm_common">ServerLimit</directive> multipliziert mit <directive
  66.     module="mpm_common">ThreadsPerChild</directive> muss größer
  67.     oder gleich <directive module="mpm_common">MaxClients</directive>
  68.     sein.</p>
  69.  
  70.     <p>Eine typische Konfiguration der Prozess-Thread-Steuerung für
  71.     das MPM <module>worker</module> könnte wie folgt aussehen:</p>
  72.  
  73.     <example>
  74.       StartServers         2<br />
  75.       MaxClients         150<br />
  76.       MinSpareThreads     25<br />
  77.       MaxSpareThreads     75<br />
  78.       ThreadsPerChild     25<br />
  79.       ServerLimit         16
  80.     </example>
  81.  
  82.     <p>Während der Elternprozess unter Unix normalerweise als
  83.     <code>root</code> gestartet wird, um sich an Port 80 binden zu können,
  84.     werden die Kindprozesse und Threads unter einem weniger privilegierten
  85.     Benutzer gestartet. Die Direktiven <directive
  86.     module="mpm_common">User</directive> und <directive
  87.     module="mpm_common">Group</directive> werden dazu verwendet, die
  88.     Privilegien der Apache-Kindprozesse festzulegen. Die Kindprozesse
  89.     müssen in der Lage sein, alle Inhalte zu lesen, die sie ausliefern
  90.     sollen, sollten darüber hinaus jedoch so wenig wie möglich Rechte
  91.     besitzen. Zusätzlich, solange nicht <a
  92.     href="../suexec.html">suexec</a> verwendet wird, legen diese
  93.     Direktiven auch die Privilegien fest, die von CGI-Skripts
  94.     geerbt werden.</p>
  95.  
  96.     <p><directive module="mpm_common">MaxRequestsPerChild</directive>
  97.     bestimmt, wie häufig der Server Prozesse erneuert, indem er alte
  98.     beendet und neue startet.</p>
  99. </section>
  100.  
  101. <directivesynopsis location="mpm_common"><name>AcceptMutex</name>
  102. </directivesynopsis>
  103. <directivesynopsis location="mpm_common"><name>CoreDumpDirectory</name>
  104. </directivesynopsis>
  105. <directivesynopsis location="mpm_common"><name>Group</name>
  106. </directivesynopsis>
  107. <directivesynopsis location="mpm_common"><name>PidFile</name>
  108. </directivesynopsis>
  109. <directivesynopsis location="mpm_common"><name>Listen</name>
  110. </directivesynopsis>
  111. <directivesynopsis location="mpm_common"><name>ListenBacklog</name>
  112. </directivesynopsis>
  113. <directivesynopsis location="mpm_common"><name>LockFile</name>
  114. </directivesynopsis>
  115. <directivesynopsis location="mpm_common"><name>MaxClients</name>
  116. </directivesynopsis>
  117. <directivesynopsis location="mpm_common"><name>MaxMemFree</name>
  118. </directivesynopsis>
  119. <directivesynopsis location="mpm_common"><name>MaxRequestsPerChild</name>
  120. </directivesynopsis>
  121. <directivesynopsis location="mpm_common"><name>MaxSpareThreads</name>
  122. </directivesynopsis>
  123. <directivesynopsis location="mpm_common"><name>MinSpareThreads</name>
  124. </directivesynopsis>
  125. <directivesynopsis location="mpm_common"><name>ScoreBoardFile</name>
  126. </directivesynopsis>
  127. <directivesynopsis location="mpm_common"><name>SendBufferSize</name>
  128. </directivesynopsis>
  129. <directivesynopsis location="mpm_common"><name>ServerLimit</name>
  130. </directivesynopsis>
  131. <directivesynopsis location="mpm_common"><name>StartServers</name>
  132. </directivesynopsis>
  133. <directivesynopsis location="mpm_common"><name>ThreadLimit</name>
  134. </directivesynopsis>
  135. <directivesynopsis location="mpm_common"><name>ThreadsPerChild</name>
  136. </directivesynopsis>
  137. <directivesynopsis location="mpm_common"><name>User</name>
  138. </directivesynopsis>
  139.  
  140. </modulesynopsis>
  141.